package com.hsj.designpartten.proxy.dynamicpartten;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 动态代理模式
 * @Description:TODO
 * @author:hsj qq:2356899074
 * @time:2017年11月2日 下午3:24:53
 */
public class ProxyTest {
	/**
	 * 日志
	 */
	private final static Logger LOGGER = LoggerFactory.getLogger(ProxyTest.class);
	
	/**
	 * 入口方法
	 * @Description:TODO
	 * @author:hsj qq:2356899074
	 * @time:2017年11月2日 下午3:25:41
	 * @param args
	 */
         public static void main(String[] args) {
 	        // 实例化目标对象  
 	        UserService userService = new UserServiceImpl();  
 	          
 	        // 实例化InvocationHandler  
 	        MyInvocationHandler invocationHandler = new MyInvocationHandler(userService);  
 	          
 	        // 根据目标对象生成代理对象  
 	        UserService proxy = (UserService) invocationHandler.getProxy();  
 	          
 	        //调用代理对象的方法  
 	        //隐式的调用invoke方法
 	        String str = proxy.add(10); 
 	        
 	       LOGGER.info("end value = "+str);
		}
         
}
